2 Laboratory performance

2.1 Load data

Load data previously compiled from the database:

all_data <- read_tsv("data/all_data.tsv") %>%
    mutate(Taxon=factor(Taxon,levels=c("Amphibian",
                                       "Reptile",
                                       "Mammal",
                                       "Bird",
                                       "Control"))) %>%
    mutate(Extraction=factor(Extraction,levels=c("ZYMO",
                                                 "DREX",
                                                 "EHEX"))) %>%
    mutate(Species=factor(Species,levels=c("Calotriton asper",
                                           "Lissotriton helveticus",
                                           "Salamandra atra",
                                           "Chalcides striatus",
                                           "Natrix astreptophora",
                                           "Podarcis muralis",
                                           "Plecotus auritus",
                                           "Sciurus carolinensis",
                                           "Trichosurus vulpecula",
                                           "Geospizopsis unicolor",
                                           "Perisoreus infaustus",
                                           "Zonotrichia capensis",
                                           "Extraction control",
                                           "Library control")))

2.2 DNA yield

Total amount of DNA extracted from the 150 ul subset of the bead-beaten sample.

all_data %>%
    select(Extraction,extract,Taxon) %>%
    group_by(Taxon,Extraction) %>%
    summarise(value = sprintf("%.0f±%.0f", mean(extract), sd(extract))) %>%
    pivot_wider(names_from = Extraction, values_from = value) %>%
    tt(caption = "Mean and standard deviation of total DNA nanograms")
tinytable_h5acnu6b53wrme40jn5e
Mean and standard deviation of total DNA nanograms
Taxon ZYMO DREX EHEX
Amphibian 471±347 482±546 1733±1145
Reptile 102±68 162±128 250±171
Mammal 445±394 265±214 904±672
Bird 73±127 13±12 54±45
Control 0±0 2±3 1±0
all_data %>%
    select(Library,Species,Extraction,extract,Taxon) %>%
    unique() %>%
    ggplot(aes(x=Extraction, y=extract, color=Species, group=Extraction))+ 
        geom_boxplot(outlier.shape = NA, fill="#f4f4f4", color="#8c8c8c") + 
        geom_jitter() + 
        scale_color_manual(values=vertebrate_colors) +
        facet_grid(. ~ Taxon, scales = "free") +
        theme_minimal() +
        labs(y="DNA yield (ng)",x="Extraction method")

all_data  %>%
    filter(Taxon != "Control") %>%
    lmerTest::lmer(extract ~ Extraction + (1 | Sample) + (1 | Species), data = ., REML = FALSE) %>%
    broom.mixed::tidy() %>%
    tt()
tinytable_d8io2g1cr0ry162ga091
effect group term estimate std.error statistic df p.value
fixed NA (Intercept) 160.36395 125.49705 1.2778304 16.14808 2.193741e-01
fixed NA ExtractionDREX -39.65796 74.42689 -0.5328445 153.24421 5.949131e-01
fixed NA ExtractionEHEX 580.62175 74.78157 7.7642359 153.30986 1.088065e-12
ran_pars Sample sd__(Intercept) 164.00812 NA NA NA NA
ran_pars Species sd__(Intercept) 374.85139 NA NA NA NA
ran_pars Residual sd__Observation 400.80106 NA NA NA NA

DNA yields vary across host taxa. - Amphibians and mammals yield the highest total amounts of DNA. - Birds yield the lowest amounts of DNA. - Controls yield barely quantifiable DNA. EHEX yields highest amounts of total DNA. - DNA recovery raks of extraction methods are maintained across taxa.

2.3 Library performance

Number of PCR cycles required for reaching the plateau phase of the indexing PCR. A higher number indicates a lower amount of amplifiable library template. When weighed by the input DNA, the required number of PCR cycles serves as an estimator of library performance.

all_data %>%
    group_by(Taxon,Extraction) %>%
    summarise(value = sprintf("%.1f±%.1f", mean(pcr), sd(pcr))) %>%
    pivot_wider(names_from = Extraction, values_from = value) %>%
    tt(caption = "Mean and standard deviation of optimal number of PCR cycles")
tinytable_z068xt4xbs1ld56rpyz3
Mean and standard deviation of optimal number of PCR cycles
Taxon ZYMO DREX EHEX
Amphibian 14.3±1.6 10.7±2.9 10.7±2.3
Reptile 11.7±4.0 10.3±3.5 12.0±3.3
Mammal 11.1±3.5 9.9±1.9 10.0±2.1
Bird 17.6±2.8 18.7±4.3 14.4±2.3
Control 20.0±2.8 19.8±0.5 22.0±4.2
all_data %>%
    select(Library,Species,Extraction,pcr,Taxon) %>%
    unique() %>%
    ggplot(aes(x=Extraction,y=pcr, color=Species, group=Extraction))+ 
        scale_y_reverse() +
        geom_boxplot(outlier.shape = NA, fill="#f4f4f4", color="#8c8c8c") + 
        geom_jitter() + 
        scale_color_manual(values=vertebrate_colors) +
        facet_grid(. ~ Taxon, scales = "free") +
        theme_minimal() +
        labs(y="Optimal number of PCR cycles",x="Extraction method")

all_data  %>%
    filter(Taxon != "Control") %>%
    lmerTest::lmer(pcr ~ Extraction + (1 | Sample) + (1 | Species), data = ., REML = FALSE) %>%
    broom.mixed::tidy() %>%
    tt()
tinytable_dkkoplrpxg0lsafpt68j
effect group term estimate std.error statistic df p.value
fixed NA (Intercept) 13.862035 0.8648942 16.027435 14.90821 8.328452e-11
fixed NA ExtractionDREX -1.568966 0.5106532 -3.072468 150.76244 2.519836e-03
fixed NA ExtractionEHEX -2.091261 0.5130831 -4.075872 150.84234 7.389947e-05
ran_pars Sample sd__(Intercept) 1.068964 NA NA NA NA
ran_pars Species sd__(Intercept) 2.599229 NA NA NA NA
ran_pars Residual sd__Observation 2.749952 NA NA NA NA